<?php
error_reporting(E_ALL ^ E_NOTICE);
ini_set('memory_limit', '1000M');
set_time_limit(0);
CONST EXCEPTION_VALUE_MAX_PRICE = 200000;  //million
/**
 *
 * hadoop处理第四步：生成uniqueID
 * input：对比上的数据，格式：(json1\tjson1\tjson1...) 注：json1即在原json中加上weight属性
 * output：sql文件
 * 	mapper_step4.php
 * 		input:对比上的数据，格式：(json1\tjson1\tjson1...)
 * 		handle:计算min_price、cnt、deviation
 * 		output:格式：(min_price\tcnt\tdeviation\tjson1\tjson1...)
 *
 * @by: lily
 * @updated: 2016-03-02
 */

while (($line_json = fgets(STDIN)) !== false) {
    $line_json = trim($line_json);
	if (empty($line_json))
        continue;

	$min_price=EXCEPTION_VALUE_MAX_PRICE;
	$cnt=0;
	$all=explode("\t",$line_json);
	if(count($all)>1){
		$aaaaa=json_decode($all[0],true);
		$bbbbb=json_decode($all[1],true);
		$deviation=abs($aaaaa['house_price']-$bbbbb['house_price']);  
	}
	//cnt数组,同一source最多加一
	else $deviation=0;
        //$deviation=0;
	$cnt_arr=array();
	foreach($all as $one){
		$one_dejson=json_decode($one,true);
		if($one_dejson['house_price']<$min_price)	$min_price=$one_dejson['house_price'];
		if($cnt_arr[$one_dejson['source']]==0) $cnt_arr[$one_dejson['source']]=1;
		}
	foreach($cnt_arr as $k=>$v){
		if($v==1) $cnt+=1;
	}
   echo $min_price."\t".$cnt."\t".$deviation."\t".$line_json."\n";
}
